import java.util.Scanner;
import java.math.*;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class test1 {
    public static BigInteger nbas = new BigInteger("2");
    public static BigInteger nmod = new BigInteger("1000000007");

    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        // 外层循环执行T次
        int T = scanner.nextInt();
        // 统计奇数的个数，只有奇数的个数是偶数个的时候s1和s2才可以都是偶数
        for (int i = 0; i < T; i++) {
            // 数组长度
            int Alen = scanner.nextInt();
            // new一个数组
            int[] arr = new int[Alen];
            // 将数据写入数组
            for (int j = 0; j < Alen; j++) {
                arr[j] = scanner.nextInt();
            }
            System.out.println(getResult(arr, Alen));
        }

    }
    public static BigInteger getResult(int[] arr, int Alen) {
        // 先统计一波奇数和偶数的个数
        int ji = 0;
        int ou = 0;
        for (int i = 0; i < Alen; i++) {
            if (arr[i] % 2 == 0) {
                ou++;
            }else {
                ji++;
            }
        }
        // 判断奇数是偶数个还是奇数个如果奇数是奇数个就完了如果是偶数个就拿下了
        if (ji % 2 != 0) {
            // 奇数不是偶数个
            return new BigInteger("0");
        }
        // 如果没有奇数，那么答案就是2^n,n是Alen也就是数组的长度
        if (ji == 0) {
            return nbas.pow(Alen).mod(nmod);
        }else {
            return nbas.pow(Alen - 1).mod(nmod);
        }
    }
}